/*
    NeuralStyler,Artistic style for your videos/photos
    Copyright(C) 2016 Rupesh Sreeraman
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef FFMPEGPROCESS_H
#define FFMPEGPROCESS_H

#include <QObject>
#include <QProcess>
#include <QDebug>
#include <QRegExp>

//frame=   52 fps=0.0 q=24.8 size=N/A time=00:00:02.16 bitrate=N/A dup=6 drop=0
//Duration: 00:00:26.74
static QRegExp rx_duration("Duration:\\s*(\\d+:\\d+:\\d*\\.\\d+)");
static QRegExp rx_fps("(\\d*\\.\\d+)*.fps");
static QRegExp rx_fps_num("(\\d+)*.fps");
static QRegExp rx_frame_ct("frame=\\s*(\\d+)");
class FfmpegProcess : public QProcess
{
    Q_OBJECT
public:
    FfmpegProcess();
    void startFfmpeg();
    inline QString getFps(){return strFps;}
    inline QString getDuration(){return strDuration;}
signals:
    void gotFrame(QString frameNumber);
public slots:
    void readyReadStandardError();

private:
    QString strFps;
    QString strDuration;
    QString strConsoleErr;

};

#endif // FFMPEGPROCESS_H
